home *** CD-ROM | disk | FTP | other *** search
-
- .text
- .super
-
- xdef lnc_install
- xdef pterm_install
- xdef memcopy
- xdef berr_catch
- xdef berr_tt_catch
- xdef old_intr
- xref ext_tab
- xref new_stack
- xref old_stack
- xref old_pterm
- xref net_reset
- xref ihandler
- xref lnc_vector
- xref memok
-
- berr_catch: ; bus error handler
- addq.w #1,memok
- add.l #8,a7
- rte
-
- berr_tt_catch: ; bus error handler
- addq.w #1,memok
- andi.w #$FEFF,$0A(a7) ; clear rerun bit
- rte
-
- lnc_install:
- movea.l lnc_vector,a0
- move.l (a0),old_intr
- move.l #lance_interrupt,(a0)
- rts
-
- dc.b 'XBRA_PKT'
- old_intr: dc.l 0
-
- lance_interrupt:
- move.l a7,old_stack
- lea old_stack,a7
- movem.l d0-a6,-(a7)
- movea.l ihandler,a0
- beq nohandler
- jsr (a0)
- nohandler:
- movem.l (a7)+,d0-a6
- movea.l old_stack,a7
- rte
-
-
- memcopy:
- move.w a0,d2
- move.w a1,d1
- eor.b d1,d2
- btst.l #0,d2
- beq wmove
- move.w d0,d1
- tst.w d1
- beq done
- subq.w #1,d1
- bloop: move.b (a1)+,(a0)+
- dbf d1,bloop
- bra done
- wmove: move.w d0,d1
- tst.w d1
- beq done
- move.w a1,d2
- btst.l #0,d2
- beq doit
- move.b (a1)+,(a0)+
- subq.l #1,d1
- doit: cmpi.w #1,d1
- ble bmove
- move.w d1,d0
- asr.w #1,d0
- subq.w #1,d0
- wloop: move.w (a1)+,(a0)+
- dbf d0,wloop
- bmove: btst.l #0,d1
- beq done
- move.b (a1)+,(a0)+
- done: rts
-
- clock: move.l $4BA,d0
- rts
-